package comunicacionesTest

import org.scalatest.Suite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import comunicaciones.LlamadaLocal


@RunWith(classOf[JUnitRunner])
class TestLlamadaLocal extends Suite{
  
  def testDuracionDeUnaLlamadaLocalConDuracion1Min(){
    var call = new LlamadaLocal(0,60)
    assert(call.duracion == 60)
  }
  
  def testLlamadaLargaQueDuroMasDe5Mins(){
    var call = new LlamadaLocal(0,360)
    assert(call.esLarga())
  }
  
  def testLlamadaNoLargaQueDuroMenosDe5Mins(){
    var call = new LlamadaLocal(0,240)
    assert(! call.esLarga())
  }
  
  def testPrecioParaSinPlanDe1Min(){
     var call = new LlamadaLocal(0,60)
     assert(call.precioParaSinPlan() == 0.60)
  }
  
  def testPrecioParaSinPlanDe7Mins(){
     var call = new LlamadaLocal(0,420)
     assert(call.precioParaSinPlan().round == 4) // da 4.20
  }
  
  def testPrecioParaPlanNumerosAmigosDondeElNumeroDestinoEstaEnElPlan(){
     var call = new LlamadaLocal(42240853,0)
     var nums = List(1534326743,42240853)
     assert(call.precioParaConPlanAmigos(nums) == 0.0)
  }
  
  def testPrecioParaPlanNumerosAmigosDondeElNumeroDestinoNoEstaEnElPlan(){
     var call = new LlamadaLocal(42574356,60)
     var nums = List(1534326743,42240853)
     assert(call.precioParaConPlanAmigos(nums) == 0.60)
  }
  
  def testPrecioParaPlanHablateTodoDondeNoEsFinDeSemanaYSeCobraComoSiNoTuviesesPlan(){
     var call = new LlamadaLocal(0,60)// 1 min
     call.getFechaDeRealizacion().setDate(2) // martes
     assert(call.precioParaHablateTodo() == 0.60) 
  }
  
  def testPrecioParaPlanHablateTodoDondeEsFinDeSemanaYSeCobraLos5PrimerosMinsDeLos7Usados(){
     var call = new LlamadaLocal(0,420) // 7 mins
     call.getFechaDeRealizacion().setDate(6) // sabado
     assert(call.precioParaHablateTodo().round == 3) // da 3.00000
  }
  
  def testPrecioParaPlanHablateTodoDondeEsFinDeSemanaYSeCobraLos5PrimerosMinsDeLos2Usados(){
     var call = new LlamadaLocal(0,120) // 2 mins
     call.getFechaDeRealizacion().setDate(6) // sabado
     assert(call.precioParaHablateTodo().round == 1) // da 1.2
  }

}